package com.njwb.day07.Stus;

import java.util.Scanner;

public class View {
    private static final StudentService studentService = new StudentServiceImpl();

    public static void main(String[] args) {

         /*
            学生信息录入系统
            用于存放学生学号的数组：int[] nos;
            用于存放学生姓名的数组 String[] names;
            用于存放学生成绩的数组 double[] scores;
            功能：
            1.添加学生信息：学号、姓名、成绩
                          学号不能重复
            2.修改学生信息：根据学号修改姓名和成绩
                          学号是否存在的判断
            3.删除学生信息：根据学号删除对应学生
                          学号是否存在的判断
            4.查询所有学生信息
            5.根据学号查询学生信息
            6.根据姓名查询学生信息
            7.根据学生的成绩进行从大到小排序展示
            8.退出系统 System.exit(0)
            要求：
            对于正常操作的数据根据以上三个数组进行正常录入或查询
            对于条件不满足的一些情形通过错误对用户做出错误提示
         */
        /*        Scanner sc=new Scanner(System.in);*/
        //int:sc.nextInt();
        //String:sc.nextLine();
        //double:sc.nextDouble();
        Scanner sc = new Scanner(System.in);

        initStudents();
        while (true) {
            System.out.println("""
                    1.添加学生信息：学号、姓名、成绩
                    2.修改学生信息：根据学号修改姓名和成绩
                    3.删除学生信息：根据学号删除对应学生
                    4.查询所有学生信息
                    5.根据学号查询学生信息
                    6.根据姓名查询学生信息
                    7.根据学生的成绩进行从大到小排序展示
                    8.退出系统
                    请输入操作：""");

            int x = sc.nextInt();
            switch (x) {
                case 1:
                    addStudent();
                    break;
                case 2:
                    alterStudent();
                    break;
                case 3:
                    deleteStudent();
                    break;
                case 4:
                    showStudents();
                    break;
                case 5:
                    showNo();
                    break;
                case 6:
                    showName();
                    break;
                case 7:
                    showDesc();
                    break;
                case 8:
                    System.exit(0);
                    break;
                default:
                    System.out.println("输入错误，请重新输入！");
            }
        }
    }

    public static void initStudents() {

        studentService.add();
    }

    public static void addStudent() {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入学号：");
        int no = sc.nextInt();
        System.out.println("请输入姓名：");
        String name = sc.next();
        System.out.println("请输入成绩：");
        double score = sc.nextDouble();
        String result = studentService.addStudent(no, name, score);
        System.out.println(result);
    }


    public static void alterStudent() {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入学号：");
        int no = sc.nextInt();
        Student existing = studentService.alterStudent(no);
        if (existing != null) {
            System.out.println("当前姓名：" + existing.getName() + "，请输入新姓名：");
            String name = sc.next();
            System.out.println("当前成绩：" + existing.getScores() + "，请输入新成绩：");
            double score = sc.nextDouble();
            String result = studentService.alterStudent(no, name, score);
            System.out.println(result);
            return;
        }
        System.out.println("未找到学生！！");
        return;

    }

    public static void deleteStudent() {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入学号：");
        int no = sc.nextInt();
        String result = studentService.deleteStudent(no);
        System.out.println(result);
    }

    public static void showStudents() {
        System.out.println("查询所有学生信息：");
        String result = studentService.findAll();
        System.out.println(result);
    }

    public static void showNo() {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入学号：");
        int no = sc.nextInt();
        String result = studentService.showNo(no);
        System.out.println(result);
    }

    public static void showName() {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入要查询的姓名：");
        String name = sc.next();
        String result = studentService.showName(name);
        System.out.println(result);
    }

    public static void showDesc() {
        String result = studentService.showDesc();
        System.out.println(result);
    }


}
